home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 June
/
ChipCD 6.02.iso
/
macos
/
files
/
dragburn.sit
/
DragonBurn
/
Dragon Burn Installer
/
WebHelp
/
BSSCNBAR.JS
< prev
next >
Wrap
Text File
|
2000-06-26
|
10KB
|
309 lines
/////////////////////////////////////////////////////////////////////////////
// RoboHELP« Navigator Bar for WebHelp
// Copyright ⌐ 1999-2000 eHelp Corporation. All rights reserved.
// Version= 4.00
// Warning: Do not modify this file. It is generated by RoboHELP« and changes will be overwritten.
// This file is used to support Navigator bar in WebHelp
// The main functions are Sync toc. Show or Hide Navigator Panel.
// call onBsscNavHide() from bsscright frame.
// Hide the bsscleft frame(Nav). and show the current topic.
// call onBsscNavShow() from any frame except bsscright.
// Show the bsscleft frame(Nav). and show the current topic in the bsscright frame. and sync toc.
// call onBsscNavSync() from bsscright frame.
// there will be two situation.
// 1. Nav is visible. Just Sync the toc.( show the Contents panel and highlight the related topic).
// 2. Nav is invisible. First Show the Nav panel. and then Sync the toc.
// onBsscNavSync(strRelHomePage) strRelHomePage is the Relative Path of the First Page, from the current page's view.
// other function will be called by onContent(). do not call them directly.
// onBsscNavSync is modified from onContents() in SyncFromTopic.js. add support DHTML sync.
// BsscNavHasNavFrame() determine the Nav frame exists or not
var gbDHTML = false;
var strAgent = navigator.userAgent.toLowerCase();
var strVersion = navigator.appVersion.toLowerCase();
var gnVerMajor = parseInt(strVersion);
var gnVerMinor = parseFloat(strVersion);
var gbNS = ((strAgent.indexOf("mozilla") != -1) && ((strAgent.indexOf('spoofer') == -1) && (strAgent.indexOf('compatible') == -1)));
var gbIE = (strAgent.indexOf("msie") != -1);
var gbOpera = (strAgent.indexOf("opera") != -1);
var gbHotJava= (strVersion.indexOf("hotjava") != -1);
var gbWin16 = ((strVersion.indexOf("win16") != -1) || (strVersion.indexOf("windows 3.1") != -1));
var gbWindows = ((strAgent.indexOf("win") != -1) || (strAgent.indexOf("16bit") != -1));
var gbMac = (strAgent.indexOf("mac") != -1);
var gbWebTV = (strAgent.indexOf("webtv") != -1);
var gbSunOS = (strAgent.indexOf("sunos") != -1);
var gbNS2 = ((gbNS) && (gnVerMajor == 2));
var gbNS3 = ((gbNS) && (gnVerMajor == 3));
var gbNS4 = ((gbNS) && (gnVerMajor >= 4));
var gbIE4 = ((gbIE) && (gnVerMajor >= 4));
var gbIE3 = ((gbIE) && (gnVerMajor <= 3));
var gbIE302before = ((gbIE3) && ((strAgent.indexOf("3.00") != -1)||(strAgent.indexOf("3.0a") != -1)||(strAgent.indexOf("3.0b")!=-1)||(strAgent.indexOf("3.01")!=-1)));
var gbIE5 = ((gbIE4) && (strAgent.indexOf("msie 5") != -1));
var nViewFrameType = 2; //1: DTHTML 2:Applet 3: HTML2 list
if (gbIE4 && gbDHTML) nViewFrameType = 1;
if (gbIE4 && gbSunOS) nViewFrameType = 1;
if (gbWin16) nViewFrameType = 3;
if (gbIE3 && gbMac) nViewFrameType = 3;
if (gbNS2) nViewFrameType = 3;
if (gbNS3 && gbMac) nViewFrameType = 3;
if (gbOpera) nViewFrameType = 3;
if (gbHotJava) nViewFrameType = 3;
if (gbWebTV) nViewFrameType = 3;
if (gbIE302before) nViewFrameType = 3;
if ((gbNS4) && (window.screen) && (window.screen.colorDepth == 4))
{
nViewFrameType = 3;
}
function BsscNavIsList() {
return (nViewFrameType == 3 || (gbIE4 && !gbIE5 && gbMac));
}
var gbstrNavnAgent = navigator.userAgent.toLowerCase();
var gbNavnNS = false;
var gbNavnIE = false;
gbNavnNS = ((gbstrNavnAgent.indexOf("mozilla") != -1) && ((gbstrNavnAgent.indexOf('spoofer') == -1) && (gbstrNavnAgent.indexOf('compatible') == -1)));
gbNavnIE = (gbstrNavnAgent.indexOf("msie") != -1);
function BsscNavHasNavFrame()
{
var bHomePage = false;
if(gbNavnIE)
{
// IE
if ((parent) && ("object" == typeof(parent.document)) && (parent.document.frames) && (parent.document.frames.length > 1))
if (parent.document.frames[0].name.indexOf("bsscleft") == 0) {
bHomePage=true;
}
}
if(gbNavnNS)
{
// Netscape
if((parent)&&(parent.window.myname == "webhelp"))
bHomePage=true;
}
return bHomePage;
}
// call onBsscNavHide() from bsscright frame.
// Hide the bsscleft frame(Nav). and show the current topic.
function onBsscNavHide()
{
if (BsscNavHasNavFrame()) {
var strURL = document.URL;
if (strURL.toLowerCase().indexOf("file://") == 0) {
strURL = _bsscnBarReplaceSpecialChar(strURL);
}
parent.window.location.replace(strURL);
}
}
// call onBsscNavShow() from any frame except bsscright.
// Show the bsscleft frame(Nav). and show the current topic in the bsscright frame. and sync toc.
function onBsscNavShow(strRelHomePageShow)
{
if (!BsscNavHasNavFrame()) {
var strRelHomePage = _bsscnBarReplaceSlash(strRelHomePageShow);
var strCurrentURL = document.URL;
var strCurrentURL = _bsscnBarReplaceSlash(strCurrentURL);
var strCurrentPath = _bsscnBarGetPath(strCurrentURL);
var strCurrentFile = _bsscnBarGetFileName(strCurrentURL);
var strAbsHomePageURL = _bsscnBarGetAbsoluteHomePageURL(strRelHomePage, strCurrentPath);
var strAbsHomePagePath = _bsscnBarGetPath(strAbsHomePageURL);
var strAbsHomePagePath = strAbsHomePagePath + "/";
var startpos = strCurrentURL.indexOf(strAbsHomePagePath);
if (startpos != -1) {
strRelativeURL = strCurrentURL.substring(startpos + strAbsHomePagePath.length, strCurrentURL.length);
if (strAbsHomePageURL.toLowerCase().indexOf("file://") == 0)
strAbsHomePageURL = _bsscnBarReplaceSpecialChar(strAbsHomePageURL);
location.replace(strAbsHomePageURL+"#" + strRelativeURL);
}
}
}
function onBsscNavSync(strRelHomePageSync)
{
var strRelHomePage = _bsscnBarReplaceSlash(strRelHomePageSync);
var strCurrentURL = document.URL;
var strCurrentURL = _bsscnBarReplaceSlash(strCurrentURL);
var strCurrentPath = _bsscnBarGetPath(strCurrentURL);
var strCurrentFile = _bsscnBarGetFileName(strCurrentURL);
var strAbsHomePageURL = _bsscnBarGetAbsoluteHomePageURL(strRelHomePage, strCurrentPath);
var strAbsHomePagePath = _bsscnBarGetPath(strAbsHomePageURL);
var strAbsHomePagePath = strAbsHomePagePath + "/";
var startpos = strCurrentURL.indexOf(strAbsHomePagePath);
if (startpos != -1) {
strRelativeURL = strCurrentURL.substring(startpos + strAbsHomePagePath.length, strCurrentURL.length);
if (BsscNavHasNavFrame()) {
if(gbNavnIE) {// IE
if (parent.document.frames[0].document.applets.length > 0) {
if (typeof(parent.document.frames[0].document.applets["webhelp"]) != "undefined") {
parent.document.frames[0].document.applets["webhelp"].Command("SyncToc", strRelativeURL);
}
}
else {
// probably DHTML
if (typeof(parent.document.frames[0].document.frames["Tabs"]) != "undefined") {
var tabFrame = parent.document.frames[0].document.frames["Tabs"];
_bsscnBarSelectTOC(strRelativeURL);
}
else { // it must be list
}
}
}
else { // Probably Netscape.
if (parent.frames[0].document.applets.length > 0) {
if (typeof(parent.frames[0].document.applets["webhelp"]) != "undefined") {
parent.frames[0].document.applets["webhelp"].Command("SyncToc", strRelativeURL);
}
}
else {
// probably DHTML
if (typeof(parent.document.frames[0].document.frames["Tabs"]) != "undefined") {
_bsscnBarSelectTOC(strRelativeURL);
}
else { // it must be list
}
}
}
}
else
//location.replace(strAbsHomePageURL+"#" + strRelativeURL);
onBsscNavShow(strRelHomePage);
}
}
// replace %20 to ' '
function _bsscnBarReplaceSpecialChar(strURL)
{
var strReplacedURL = "";
for (i = 0; i < strURL.length; i ++ )
{
if (strURL.charAt(i) == '%') {
if (strURL.substring(i + 1, i + 3) == "20") {
strReplacedURL = strReplacedURL + " ";
i += 2;
}
}
else
strReplacedURL = strReplacedURL + strURL.charAt(i);
}
return strReplacedURL;
}
// replace \\ to /
function _bsscnBarReplaceSlash(strURL)
{
var strReplacedURL = "";
for (i = 0; i < strURL.length; i ++ )
{
if (strURL.charAt(i) == '\\')
strReplacedURL = strReplacedURL + "/"
else
strReplacedURL = strReplacedURL + strURL.charAt(i);
}
return strReplacedURL;
}
// generate absolute URL for the first page.
function _bsscnBarGetAbsoluteHomePageURL(strRelHomePage, strCurrentPath)
{
if (strCurrentPath.charAt(strCurrentPath.length - 1) == '/')
strCurrentPath = strCurrentPath.substring(0, strCurrentPath.length -1);
for (;;) {
upDirPos = strRelHomePage.indexOf("../")
if (upDirPos == 0) {
DirPos = strCurrentPath.lastIndexOf("/")
if (DirPos != -1) {
strCurrentPath = strCurrentPath.substring(0, DirPos)
}
strRelHomePage = strRelHomePage.substring(3, strRelHomePage.length);
}
if (upDirPos != 0) break;
}
return strCurrentPath + "/" + strRelHomePage;
}
function _bsscnBarGetPath(strURL)
{
pathpos = strURL.lastIndexOf("/");
if (pathpos > 0)
return strURL.substring(0, pathpos);
else
return "";
}
function _bsscnBarGetFileName(strURL)
{
pathpos = strURL.lastIndexOf("/");
if (pathpos > 0)
return strURL.substring(pathpos + 1, strURL.length);
else
return strURL;
}
function _bsscnBarGetTabFrame()
{
if(gbNavnIE) {// IE
return parent.document.frames[0];
}
else { // Netscape
return parent.frames[0];
}
}
function _bsscnBarSelectTOC(strRelativeURL)
{
var TabFrame = _bsscnBarGetTabFrame();
if ("function" == typeof(TabFrame.syncToc))
TabFrame.syncToc(strRelativeURL);
}
function _bsscnBarOnError(message)
{
if(-1 != message.indexOf("denied")
|| -1 != message.indexOf("Object required"))
return true;
}
onerror = _bsscnBarOnError;